<?php namespace Admin\Controller; 

use Hdphp\Controller\Controller;

//测试控制器
class CateController extends CommonController{
//	声明一属性来接受模型类
	private $model;
	//构造函数
	public function __init()
	{
//		实例化这个cate模型赋值给属性，这样本控制器的所有方法都可以用
		$this->model=new \Common\Model\Cate;
		parent::__init();		
	}
	
    //动作
    public function index(){
    //获得所有的分类
    	$data=$this->model->get();
		$arcModel=new \Common\Model\Arc;
	//获得该类下的文章数目
		foreach ($data as $k => $v) {
			$data[$k]['arctotal']=$arcModel->where('category_cid='.$v['cid'])->count();
		}				
	//把数据变为树状结构	
		
		$data = Data::tree($data,'cname','cid');
	//分配数据
		View::with('data',$data);
       View::make();
    }
//	增加
	public function add(){
//	判断是不是有提交
		if(IS_POST){
//			判断是不是错误
//			这里用geterror的方法来获得验证的错误内容
			if(!$this->model->store()) View::error($this->model->getError());
//			成功提示，跳转到本分类的index方法
			View::success('添加分类成功',U('cate/index'));			
		}
	
	    View::make();
	}
//	添加子分类
	public function addSon(){
		if(IS_POST){
			//调用模型的添加操作
			if(!$this->model->store()) View::error($this->model->geterror());
//				添加成功提示
			View::success('添加成功',U('cate/index'));
		}
		//获得“所属分类”的cid
		$cid=Q('get.cid');
		//只要cid,cname字段
		$parent=$this->model->field('cid','cname')->where("cid=$cid")->find(); 
//		分配变量显示到子分类的添加上面去
		View::with('parent',$parent);
	    View::make();
	}
//	删除分类
	public function del(){
//	    获得get的cid
		$cid=Q('get.cid',0,'intval');
//	获得要删除的分类的pid	
		$pid=$this->model->where("cid={$cid}")->pluck('pid');
//	将子分类上位
		$this->model->where("pid={$cid}")->save(array('pid'=>$pid));
//	删除要删除的分类
		$this->model->where("cid={$cid}")->delete();
//	删除成功提示	
		View::success('删除成功',U('cate/index'));
			
						
	}
		
//	编辑方法
	public function edit(){
//		3.判断是否有表单提交	
		if(IS_POST){
		
			if($this->model->edit()) View::success('修改成功',U('index'));
			View::error('添加失败');
		
		}		
//		1.获得就旧数据对应的cid
		$cid=Q('get.cid',0,'intval');

//		2.获得旧数据
		$oldData=$this->model->where("cid={$cid}")->find();
		View::with('oldData',$oldData);
//		获得除了自己和自己的子分类
		$catedata=$this->model->getNoMy($cid);
		View::with('catedata',$catedata);
//		分配变量
		
	    View::make();
	}
	
}
